package com.thiswhyme.elasticsearch.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @description: es配置属性
 * @author: thiswhyme
 * @date: 2021/10/14
 */
@Data
@ConfigurationProperties(prefix = "thiswhyme.elasticsearch")
public class ElasticSearchProperties {

    /**
     * 是否启用es
     */
    private Boolean enable = false;

    /**
     * 地址
     */
    private String host;

    /**
     * 端口
     */
    private Integer port;

    /**
     * 连接超时时间（ms）
     */
    private Integer connectTimeout;

    /**
     * 读取数据超时时间（ms）
     */
    private Integer socketTimeout;

    /**
     * 获取连接的超时时间（ms）
     */
    private Integer connectionRequestTimeOut;

    /**
     * 最大连接数
     */
    private Integer maxConnTotal;

    /**
     * 最大路由连接数
     */
    private Integer maxConnPerRoute;

    /**
     * 连接时间（ms）
     */
    private Integer keepAliveTime;

    /**
     * 集群地址
     */
    private String clusterAddress;

    /**
     * 鉴权配置
     */
    private AuthConfig auth;

    @Data
    public static class AuthConfig {

        /**
         * 是否开启权限控制
         */
        private Boolean enable = false;

        /**
         * 用户名
         */
        private String userName;

        /**
         * 密码
         */
        private String password;
    }
}
